#pragma once

#include "LogLevel.h"

using namespace Log;

class CLogManager;

class CGaojieLogApp
{
public:
	CGaojieLogApp();
	~CGaojieLogApp();

	bool Init(LPCVOID lpAddress);
	void Exit(LPCVOID lpAddress);
	bool IsLoggable(LogLevel logLevel) const;
	void WriteLine(LPCVOID lpAddress, const std::string& strLine);

private:
	void LoadConfig();

	LogLevel m_logLevel;
	SRWLOCK  m_SRWLock = SRWLOCK_INIT;
	std::unique_ptr<CLogManager> m_pLogManager;
};
